package com.hermes.biz.manager.item.impl;

import java.util.List;

import com.hermes.biz.common.model.item.ItemDO;
import com.hermes.biz.common.model.result.ItemResultDO;
import com.hermes.biz.dao.item.ItemDAO;
import com.hermes.biz.manager.item.ItemOperateManager;

public class ItemOperateManagerImpl implements ItemOperateManager {

    private ItemDAO itemDAO;

    public List<ItemDO> getAllItemList(long start, long end) {
        return this.itemDAO.getItemList(start, end);
    }

    public ItemResultDO getSingleItemByItemName(String itemName) {

        ItemResultDO result = new ItemResultDO(false);
        ItemDO itemDO = this.itemDAO.getItemByItemName(itemName);
        if (itemDO != null) {
            result.setSuccess(true);
            result.setModule(itemDO);
        } else {
            result.setErrMsg("");
        }
        return result;
    }

    public ItemResultDO getSingleItemByItemId(long itemId) {

        ItemResultDO result = new ItemResultDO(false);
        ItemDO itemDO = this.itemDAO.getItemByItemId(itemId);
        if (itemDO != null) {
            result.setSuccess(true);
            result.setModule(itemDO);
        } else {
            result.setErrMsg("");
        }
        return result;
    }

    public void saveSingleItem(ItemDO itemDO) {

        this.itemDAO.saveItem(itemDO);

    }

    public void deleteSingleItemByItemId(long itemId) {

        this.itemDAO.deleteItemByItemId(itemId);
    }

    public void updateSingleItem(ItemDO itemDO) {

        this.itemDAO.updateItem(itemDO);

    }

    public void updateSingleItemLovedNumber(ItemDO itemDO) {

        this.itemDAO.updateItemLovedNumber(itemDO);

    }

    public void updateSingleItemClickNumber(ItemDO itemDO) {

        this.itemDAO.updateItemClickNumber(itemDO);

    }

    public void setItemDAO(ItemDAO itemDAO) {
        this.itemDAO = itemDAO;
    }

    public List<ItemDO> getItemByItemTagId(long tagId, long start, long end) {

        List<ItemDO> resultList = this.itemDAO.getItemByItemTagId(tagId, start, end);
        return resultList;
    }

    public long countItemNumber(long tagId) {

        return this.itemDAO.countItemNumber(tagId);
    }

    public long countIndexPageItemNumber() {

        return this.itemDAO.countIndexPageItemNumber();
    }

}
